#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main()
{
  
  printf("我是一个进程，我的id是：%d，我的父进程的id是：%d\n", getpid(), getppid());
  pid_t id = fork();
  int a = 0;
  if(id < 0)
  {
    return 1;
  }
  else if(id > 0)
  {
    printf("我是一个父进程，我的id是：%d，我的父进程的id是：%d，%d：%p\n", getpid(), getppid(), a, &a);
  }
  else
  {
    printf("我是一个子进程，我的id是：%d，我的父进程的id是：%d，%d：%p\n", getpid(), getppid(), a, &a);
  }
  return 0;
}

//int b = 0;
//
//int main()
//{
//  int* a = (int*)malloc(sizeof(int) * 10);
//  const char* str = "hello world";
//  printf("栈区：%p\n", &a);
//  printf("堆区：%p\n", a);
//  printf("全局变量区：%p\n", &b);
//  printf("字符常量区：%p\n", str);
//  printf("代码区：%p\n", main);
//  return 0;
//}


//struct stu{
//  int a;
//  int b;
//  int c;
//};
//
//int main()
//{
//  struct stu s;
//  printf("%p\n", &s.a);
//  printf("%p\n", &s.b);
//  printf("%p\n", &s.c);
//}
